package ManagersUI;

import AdmonHorarios.Aula;
import AdmonHorarios.Calendario;
import AdmonHorarios.Catedratico;
import AdmonHorarios.Curso;
import AdmonHorarios.Hora;
import AdmonHorarios.Seccion;
import ControladoresUI.AsignacionesController;
import ControladoresUI.CatedraticoController;
import java.io.IOException;
import java.util.logging.*;
import javafx.fxml.FXMLLoader;
import javafx.scene.*;
import Entidades.Usuario;
import java.util.ArrayList;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

/**
 *
 * @author JEscalante
 */
public class AsignacionesManager {
    private Scene scene;
    private Stage stage;
    public Parent root;
    public HBox pnlPrincipal;
    public AsignacionesManager(Scene scene, Stage stage) {
        this.scene = scene;
        this.stage = stage;
    }
  /*  public void abrirPanelUsuarios(Usuario usuario){
        try {
            FXMLLoader loader = new FXMLLoader(getClass().getResource("/VistasUI/pnlUsuarios.fxml"));
            scene.setRoot((Parent) loader.load());
            UsuariosController controller = loader.<UsuariosController>getController();
            controller.initManager(this, usuario);
        } catch (IOException ex) {
            Logger.getLogger(UsuariosManager.class.getName()).log(Level.SEVERE, null, ex);
        }
    }*/
    public void abrirPanelAsignaciones(){
        try {
            FXMLLoader loader = new FXMLLoader(getClass().getResource("/VistasUI/pnlAsignaciones.fxml"));
            root = (Parent) loader.load();
            AsignacionesController controller = loader.<AsignacionesController>getController();
            controller.initManager(this);
        } catch (IOException ex) {
            Logger.getLogger(AsignacionesManager.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    public void showPnlDisponibilidadAulas(){
        Parent root = null;
        DisponibilidadAulaManager manager = new DisponibilidadAulaManager(scene,stage,this);
        manager.abrirPanel();
        root = manager.root;
        
        if(pnlPrincipal.getChildren().size()>1)
            pnlPrincipal.getChildren().remove(1);
        //this.ventanaManager.showPnlUsuarios(Usuario);
        pnlPrincipal.getChildren().add(root);
    }
    
    public void showPnlSeleccionDatosCursos(){
        Parent root = null;
        SeleccionDatosCursosManager seleccionDatosCursosManager = new SeleccionDatosCursosManager(scene,stage,this);
        seleccionDatosCursosManager.abrirPanelSeleccionDatosCurso();
        root = seleccionDatosCursosManager.root;
        
        if(pnlPrincipal.getChildren().size()>1)
            pnlPrincipal.getChildren().remove(1);
        //this.ventanaManager.showPnlUsuarios(Usuario);
        pnlPrincipal.getChildren().add(root);
    }
    
    public void showPnlSeleccionCursos(String carrera, String ciclo, String jornada, String anio, String semestre,
            ArrayList <Curso> Cursos,ArrayList <Catedratico> Catedraticos,ArrayList <Aula> Aulas,ArrayList <Hora> horas,
            Calendario calendario){
        Parent root = null;
        SeleccionCursoSeccionManager seleccionCursoSeccionManager = new SeleccionCursoSeccionManager(scene,stage,this);
        seleccionCursoSeccionManager.abrirPanelSeleccionCursoSeccion(carrera, ciclo, jornada, anio, semestre,Cursos,Catedraticos,Aulas,horas,calendario);
        root = seleccionCursoSeccionManager.root;
        
        if(pnlPrincipal.getChildren().size()>1)
            pnlPrincipal.getChildren().remove(1);
        //this.ventanaManager.showPnlUsuarios(Usuario);
        pnlPrincipal.getChildren().add(root);
    }
    //tercera ventana
    public void showPnlAsignacionCursoAula(
    Curso curso, 
    Seccion seccion, 
    String anio, 
    String semestre,
    ArrayList <Curso> Cursos,
    ArrayList <Catedratico> Catedraticos,
    ArrayList <Aula> Aulas,
    ArrayList <Hora> horas,
    Calendario calendario,
    int CreditosP, 
    int CreditosT){
        Parent root = null;
        AsignacionCursoAulaManager asignacionCursoAulaManager = new AsignacionCursoAulaManager(scene,stage,this);
        asignacionCursoAulaManager.abrirPanelSeleccionCursoSeccion(curso,seccion, anio, semestre,Cursos,Catedraticos,Aulas,horas,calendario,CreditosP,CreditosT);
        root = asignacionCursoAulaManager.root;
        
        if(pnlPrincipal.getChildren().size()>1)
            pnlPrincipal.getChildren().remove(1);
        //this.ventanaManager.showPnlUsuarios(Usuario);
        pnlPrincipal.getChildren().add(root);
    }
    
    public void showPnlVistaCalendario(){
        Parent root = null;
        VistaCalendarioManager vistaCalendarioManager = new VistaCalendarioManager(scene,stage,this);
        vistaCalendarioManager.abrirPanelVistaCalendario();
        root = vistaCalendarioManager.root;
        
        if(pnlPrincipal.getChildren().size()>1)
            pnlPrincipal.getChildren().remove(1);
        //this.ventanaManager.showPnlUsuarios(Usuario);
        pnlPrincipal.getChildren().add(root);
    }

}
